Electronic messages have become an indispensable part of modern communication. Electronic messages such as email or instant messages are popular because they are fast, easy, and have essentially no incremental cost. Unfortunately, these advantages of electronic messages are also exploited by marketers who regularly send out unsolicited junk messages. The junk messages are referred to as “spam”, and spam senders are referred to as “spammers”. Spam messages are a nuisance for users. They clog people's email box, waste system resources, often promote distasteful subjects, and sometimes sponsor outright scams.
A number of message filtering systems exist for mitigating the problems caused by spam. These systems often employ a whitelist technique, where a list of allowable sender addresses is maintained. These sender addresses are usually added by the user. Any messages coming from a sender in the whitelist is presumed to be a good, non-spam message. The whitelist test works as follows in some systems: once a message is received, the system looks up the sender address of the message in the whitelist. If the sender address is found in the whitelist, the message is classified as non-spam and delivered to the intended recipient. If, however, the sender address is not found in the whitelist, the message cannot be classified and further testing is needed to determine whether it is spam or non-spam.
Whitelisting is a widely accepted technique since it is useful in identifying non-spam messages, and performing a whitelist test incurs relatively low overhead on the system. The effectiveness of the whitelist depends on the entries in the whitelist; a well-maintained whitelist with many entries tends to be more useful than a whitelist that has very few entries. Since most of the systems require the user to manually add entries to his whitelist, addresses that should be added to the whitelist may be unintentionally left out, thereby making the whitelist less effective. Furthermore, many users find the manual process of adding whitelist entries somewhat tedious, and thus desire a more automated process. Also, it may be problematic or inconvenient to upload whitelists from clients to servers on systems where email filtering is implemented on a server. It would be useful to have a way to maintain a whitelist that requires less manual intervention, and improves the effectiveness of the whitelist.